import 'package:flutter/material.dart';
// import 'package:flutter_blue_card_plugin/flutter_blue_card_plugin.dart';
import 'common_utils.dart';
import '../global_store/store.dart';
import 'dart:convert' as convert;

class BlueToothHelper {
  static Future<bool> saveGas(
    BuildContext context, {
    String sn,
    String orderID,
    String userNo,
    String ctrlCode = 'XA',
    String cardNo,
    String cardGas,
    String cardMemo,
  }) async {
  //   if (ctrlCode == 'XA') {
  //     ctrlCode = 'SQKLXA';
  //   }
  //   if (ctrlCode == 'QC') {
  //     ctrlCode = 'SQKLQC';
  //   }
  //   CommonUtils.showWaitLoading(context, descText: '建立连接中');
  //   if (FlutterBlueCardPlugin.isConnecting)
  //     await FlutterBlueCardPlugin.disconnect();
  //
  //   ///获取token 看读卡器是否是鉴权读卡器
  //   ResultData loginRes = await NetWorkManager.login(sn);
  //   if (!loginRes.success) {
  //     Navigator.pop(context);
  //     CommonUtils.showErrorInfo(context, loginRes.desc);
  //     return false;
  //   }
  //   String token = loginRes.data['token'];
  //   String arch = loginRes.data['arch'];
  //
  //   ///连接读卡器
  //   BlueCardResultData res = await FlutterBlueCardPlugin.connect(sn);
  //   if (res.code != 0) {
  //     Navigator.pop(context);
  //     CommonUtils.showErrorInfo(context, '连接读卡器失败');
  //     return false;
  //   }
  //   Navigator.pop(context);
  //   await Future.delayed(Duration(milliseconds: 2));
  //   CommonUtils.showWaitLoading(context, descText: '读取气卡信息');
  //
  //   ///读取卡信息
  //   BlueCardResultData readResData = await FlutterBlueCardPlugin.readCard(
  //     sn,
  //     token: token,
  //     arch: arch,
  //     ctrlCode: ctrlCode,
  //   );
  //   if (readResData.code != 0) {
  //     await logOnSever(sn, orderID, userNo, false, readResData, ctrlCode);
  //     Navigator.pop(context);
  //     CommonUtils.showErrorInfo(context, readResData.desc);
  //     return false;
  //   }
  //   Navigator.pop(context);
  //
  //   ///卡信息校验
  //   if (int.tryParse(readResData.cardNo).toString() != int.tryParse(cardNo).toString()) {
  //     await CommonUtils.showAlertView(context, '该气卡与订单卡号不符合');
  //     return false;
  //   }
  //   if (readResData.cardGas != '0') {
  //     await CommonUtils.showAlertView(context, '该气卡中仍有气量，请上表清空后再进行圈存！');
  //     return false;
  //   }
  //
  //   ///写卡操作
  //   await Future.delayed(Duration(milliseconds: 2));
  //   CommonUtils.showWaitLoading(context, descText: '正在圈存中');
  //   BlueCardResultData writeRes = await FlutterBlueCardPlugin.writeCard(
  //     sn,
  //     cardGas: cardGas,
  //     cardNo: readResData.cardNo,
  //     cardData: readResData.cardData,
  //     token: token,
  //     arch: arch,
  //     cardMemo: cardMemo,
  //     ctrlCode: ctrlCode,
  //   );
  //   if (writeRes.code != 0) {
  //     await logOnSever(sn, orderID, userNo, false, writeRes, ctrlCode);
  //     Navigator.pop(context);
  //     CommonUtils.showErrorInfo(context, writeRes.desc);
  //     return false;
  //   }
  //   ResultData statusRes =
  //       await changeOrderStatus(sn, userNo, orderID, writeRes.cardMemo);
  //   String desc = statusRes.success ? '圈存成功' : '订单状态修改失败';
  //   if (!statusRes.success) {
  //     await logOnSever(
  //       sn,
  //       orderID,
  //       userNo,
  //       false,
  //       BlueCardResultData.error(statusRes.desc, sn,
  //           command: ['/api/bluetooth/enclosure']),
  //       ctrlCode,
  //     );
  //   } else
  //     await logOnSever(sn, orderID, userNo, true, writeRes, ctrlCode);
  //
  //   Navigator.pop(context);
  //   await Future.delayed(Duration(milliseconds: 2));
  //   await CommonUtils.showAlertView(context, desc);
  //   await FlutterBlueCardPlugin.disconnect();
  //   return true;
  // }
  //
  // static logOnSever(
  //   String sn,
  //   String orderID,
  //   String userNo,
  //   bool status,
  //   BlueCardResultData resultData,
  //   String ctrlCode,
  // ) async {
  //   final Map<String, dynamic> content = Map<String, dynamic>();
  //   content['code'] = resultData.code;
  //   content['desc'] = resultData.desc;
  //   if (resultData.content != null) content['content'] = resultData.content;
  //   if (resultData.command != null) content['command'] = resultData.command;
  //   String json = convert.jsonEncode(content);
  //   ResultData res = await NetWorkManager.saveLog(
  //     GlobalStore.store.getState().userInfo.token,
  //     sn: sn,
  //     orderID: orderID,
  //     userNo: userNo,
  //     status: status,
  //     content: json,
  //     ctrlCode: ctrlCode,
  //   );
  //   return res;
  }

  static changeOrderStatus(
      String sn, String userNo, String orderID, String memo) async {
    // final Map<String, dynamic> content = Map<String, dynamic>();
    // content['BluetoothBindUserNo'] = userNo;
    // content['OrderId'] = orderID;
    // content['BluetoothNo'] = sn;
    // content['Memo'] = memo;
    // String json = convert.jsonEncode(content);
    // ResultData res = await NetWorkManager.changeOrderStatus(
    //     json, GlobalStore.store.getState().userInfo.token);
    // return res;
  }
}
